tools/libxc: Remus Checkpoint Compression
authorShriram Rajagopalan <rshriram@cs.ubc.ca>
Thu, 1 Dec 2011 15:36:15 +0000 (15:36 +0000)
committerShriram Rajagopalan <rshriram@cs.ubc.ca>
Thu, 1 Dec 2011 15:36:15 +0000 (15:36 +0000)
commitf6b3d39f5d316079add221d893e28009354b3f07
tree765693b5557fcde1fe2ae9221b4ea4b97ad4aba0
parentde869779a0b7c411a69b787ec01b485492b40f32
tools/libxc: Remus Checkpoint Compression

Instead of sending dirty pages of guest memory as-is, use a simple compression
algorithm that sends a RLE-encoded XOR of the page against its last sent copy.
A small LRU cache is used to hold recently dirtied pages. Pagetable pages are
sent as-is, as they are canonicalized at sender side and uncanonicalized at
receiver.

[ Fixed up a conflict in sg_save_restore.h.  I had to increase the
  ID values used from -11 and -12 to -12 and -13 because -11 had
  been taken by ..._HVM_VIRIDIAN in the meantime. -iwj ]

Signed-off-by: Shriram Rajagopalan <rshriram@cs.ubc.ca>
Acked-by: Brendan Cully <brendan@cs.ubc.ca>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxc/Makefile
tools/libxc/xc_compression.c [new file with mode: 0644]
tools/libxc/xc_domain_restore.c
tools/libxc/xc_domain_save.c
tools/libxc/xenctrl.h
tools/libxc/xenguest.h
tools/libxc/xg_save_restore.h